package la.iok.hzsvn.lewin.movie.core.model;

import la.iok.hzsvn.lewin.movie.core.RoleEnum;
import la.iok.hzsvn.share.annotations.NotNull;

import java.util.List;

/**
 * 用户的视图对象
 */
public class UserVo extends SimpleUser {
    /**
     * 组织名称
     */
    private String orgUnitName;
    /**
     * 组织类型
     */
    private Integer orgUnitType;
    /**
     * PAD端是否隐藏云端剧本列表，1：隐藏，0:不隐藏。默认为0
     */
    private Integer hideCloudMovie;
    /**
     * 角色列表。当前组织的角色
     */
    private List<String> roles;

    public String getOrgUnitName() {
        return orgUnitName;
    }

    public void setOrgUnitName(String orgUnitName) {
        this.orgUnitName = orgUnitName;
    }

    public Integer getOrgUnitType() {
        return orgUnitType;
    }

    public void setOrgUnitType(Integer orgUnitType) {
        this.orgUnitType = orgUnitType;
    }

    public Integer getHideCloudMovie() {
        return hideCloudMovie;
    }

    public void setHideCloudMovie(Integer hideCloudMovie) {
        this.hideCloudMovie = hideCloudMovie;
    }

    public List<String> getRoles() {
        return roles;
    }

    public void setRoles(List<String> roles) {
        this.roles = roles;
    }

    /**
     * 是否包含指定的角色
     * @param role 角色名称
     * @return 包含指定角色返回true,否则false
     */
    public boolean hasRole(String role){
        return roles != null && roles.size() > 0 && roles.contains(role);
    }

    /**
     * 是否包含指定的角色
     * @param role 角色
     * @return 包含指定角色返回true,否则false
     */
    public boolean hasRole(@NotNull RoleEnum role){
        return hasRole(role.name());
    }
}
